#region Using Statements
using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
#endregion

namespace KLib.Graphics
{
    public struct Material : IDisposable
    {
        #region Static
        /// <summary>
        /// A Blank Material with no Texture and no Effect
        /// </summary>
        public static Material Blank = new Material(null, null);
        #endregion

        #region Fields
        public Texture2D Texture;
        public Effect Effect;

        private bool hasTexture;
        private bool hasEffect;
        #endregion

        #region Initialization
        public Material(Texture2D texture, Effect effect)
        {
            this.Texture = texture;
            this.Effect = effect;

            hasTexture = this.Texture != null;
            hasEffect = this.Effect != null;
        }
        public Material(ref Texture2D texture, Effect effect)
        {
            this.Texture = texture;
            this.Effect = effect;

            hasTexture = this.Texture != null;
            hasEffect = this.Effect != null;
        }
        public Material(ref Texture2D texture, ref Effect effect)
        {
            this.Texture = texture;
            this.Effect = effect;

            hasTexture = this.Texture != null;
            hasEffect = this.Effect != null;
        }

        public void Dispose()
        {
        }

        #endregion
    }
}
